GdkVisualX11: Add a dispose implementation
authorMatthias Clasen <mclasen@redhat.com>
Sat, 29 Jun 2013 23:22:51 +0000 (19:22 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 29 Jun 2013 23:22:51 +0000 (19:22 -0400)
We need to be able to drop X resources before finalization.

gdk/x11/gdkvisual-x11.c

index b96c3a3e0c7cd20f9f99467b660af826145735c5..9901051351bd722eb01dace22e6d70f27c97a838 100644 (file)
@@ -87,12 +87,28 @@ gdk_x11_visual_finalize (GObject *object)
   G_OBJECT_CLASS (gdk_x11_visual_parent_class)->finalize (object);
 }
 
+static void
+gdk_x11_visual_dispose (GObject *object)
+{
+  GdkVisual *visual = (GdkVisual *)object;
+  GdkX11Visual *x11_visual = (GdkX11Visual *)object;
+
+  if (x11_visual->colormap != None)
+    {
+      XFreeColormap (GDK_SCREEN_XDISPLAY (visual->screen), x11_visual->colormap);
+      x11_visual->colormap = None;
+    }
+
+  G_OBJECT_CLASS (gdk_x11_visual_parent_class)->dispose (object);
+}
+
 static void
 gdk_x11_visual_class_init (GdkX11VisualClass *class)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
   object_class->finalize = gdk_x11_visual_finalize;
+  object_class->dispose = gdk_x11_visual_dispose;
 }
 
 void